home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / contrib / zelk / src-zlib / fail.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-17  |  1.0 KB  |  63 lines

  1. /* fail.c zilla 23aug - C version: error & abort. lisp version: error throw
  2.  * keep in a separate file so programs can use routines in libz but
  3.  * define their own Zcodeerror.
  4.  * mod
  5.  * 28apr        bugfix 
  6.  * 15oct        rname to Zfail
  7.  */
  8.  
  9. #include <theusual.h>
  10.  
  11. #if Evarargs
  12. # include <varargs.h>
  13. #endif
  14. #if Estdarg
  15. # include <stdarg.h>
  16. #endif
  17.  
  18. #if (Estdarg&&Evprintf)
  19. #define _fail_def_
  20. proc Zfail(char *msg,...)
  21. {
  22.     va_list ap;
  23.     
  24.     fflush(stdout);
  25.     fprintf(stderr,"FAILING: ");
  26.     va_start(ap,msg);
  27.     vfprintf(stderr,msg,ap);
  28.     putc('\n',stderr);
  29.     va_end(ap);
  30.     abort();
  31. }
  32. #endif
  33.  
  34. #if (Evarargs&&Evprintf)
  35. #define _fail_def_
  36. proc Zfail(va_alist)
  37.  va_dcl
  38. {
  39.     va_list ap;
  40.     char *msg;
  41.     
  42.     fflush(stdout);
  43.     va_start(ap);
  44.     msg = va_arg(ap,char *);
  45.     fprintf(stderr,"FAILING: ");
  46.     vfprintf(stderr,msg,ap);
  47.     putc('\n',stderr);
  48.     va_end(ap);
  49.     abort();
  50. }
  51. #endif
  52.  
  53. #ifndef _fail_def_
  54. proc Zfail(msg)
  55.   char *msg;
  56. {
  57.     fflush(stdout);
  58.     fprintf(stderr,"fail: %s\n",msg);
  59.     abort();
  60. }
  61. #endif
  62. #undef _fail_def_
  63.